package com.cws.project.cws.homework.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.cws.framework.aspectj.lang.annotation.Excel;
import com.cws.framework.web.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 作业管理对象 cws_homework
 *
 * @author xyl
 * @date 2022-01-10
 */
public class Homework extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     *
     */
    private Long homeworkId;
    /**
     * 作业标题
     */
    @Excel(name = "作业标题")
    private String homeworkTopic;

    /**
     * 作业内容
     */
    @Excel(name = "作业内容")
    private String homeworkContent;

    /**
     * 分值
     */
    @Excel(name = "分值")
    private BigDecimal homeworkScore;

    /**
     * 作业类型
     */
    @Excel(name = "作业类型")
    private String homeworkType;

    /**
     * 创建人
     */
    private Long createId;

    /**
     * 班级
     */
    @Excel(name = "班级")
    private String clazzName;

    private Long clazzId;

    private List<Long> clazzIds;

    private Date startTime;

    /**
     * 结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    private String status;

    @Excel(name = "未批改人数")
    private Integer noCorrectCount;
    @Excel(name = "未提交人数")
    private Integer noSubmitCount;

    private String noSubmitStudents;
    private String noCorrectStudent;

    private Long studentId;

    //todo 学生列表查看是否已提交
    private String isSubmit;

    private Long courseId;

    @Excel(name = "课程名称")
    private String courseName;

    private BigDecimal score;

    public String getNoSubmitStudents() {
        return noSubmitStudents;
    }

    public void setNoSubmitStudents(String noSubmitStudents) {
        this.noSubmitStudents = noSubmitStudents;
    }

    public String getNoCorrectStudent() {
        return noCorrectStudent;
    }

    public void setNoCorrectStudent(String noCorrectStudent) {
        this.noCorrectStudent = noCorrectStudent;
    }

    public BigDecimal getScore() {
        return score;
    }

    public void setScore(BigDecimal score) {
        this.score = score;
    }

    public Integer getNoSubmitCount() {
        return noSubmitCount;
    }

    public void setNoSubmitCount(Integer noSubmitCount) {
        this.noSubmitCount = noSubmitCount;
    }

    public String getCourseName() {
        return courseName;
    }

    public void setCourseName(String courseName) {
        this.courseName = courseName;
    }

    public Long getCourseId() {
        return courseId;
    }

    public void setCourseId(Long courseId) {
        this.courseId = courseId;
    }

    public String getIsSubmit() {
        return isSubmit;
    }

    public void setIsSubmit(String isSubmit) {
        this.isSubmit = isSubmit;
    }

    public Long getStudentId() {
        return studentId;
    }

    public void setStudentId(Long studentId) {
        this.studentId = studentId;
    }

    public Integer getNoCorrectCount() {
        return noCorrectCount;
    }

    public void setNoCorrectCount(Integer noCorrectCount) {
        this.noCorrectCount = noCorrectCount;
    }

    public String getHomeworkTopic() {
        return homeworkTopic;
    }

    public String getClazzName() {
        return clazzName;
    }

    public void setClazzName(String clazzName) {
        this.clazzName = clazzName;
    }

    public void setHomeworkTopic(String homeworkTopic) {
        this.homeworkTopic = homeworkTopic;
    }

    public void setHomeworkId(Long homeworkId) {
        this.homeworkId = homeworkId;
    }

    public Long getHomeworkId() {
        return homeworkId;
    }

    public void setHomeworkContent(String homeworkContent) {
        this.homeworkContent = homeworkContent;
    }

    public String getHomeworkContent() {
        return homeworkContent;
    }

    public void setHomeworkScore(BigDecimal homeworkScore) {
        this.homeworkScore = homeworkScore;
    }

    public BigDecimal getHomeworkScore() {
        return homeworkScore;
    }

    public void setHomeworkType(String homeworkType) {
        this.homeworkType = homeworkType;
    }

    public String getHomeworkType() {
        return homeworkType;
    }

    public void setCreateId(Long createId) {
        this.createId = createId;
    }

    public Long getCreateId() {
        return createId;
    }

    public void setClazzId(Long clazzId) {
        this.clazzId = clazzId;
    }

    public Long getClazzId() {
        return clazzId;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public Date getEndTime() {
        return endTime;
    }


    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public List<Long> getClazzIds() {
        return clazzIds;
    }

    public void setClazzIds(List<Long> clazzIds) {
        this.clazzIds = clazzIds;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("homeworkId", getHomeworkId())
                .append("homeworkContent", getHomeworkContent())
                .append("homeworkScore", getHomeworkScore())
                .append("homeworkType", getHomeworkType())
                .append("createId", getCreateId())
                .append("clazzId", getClazzId())
                .append("startTime", getStartTime())
                .append("endTime", getEndTime())
                .append("createTime", getCreateTime())
                .append("createBy", getCreateBy())
                .append("updateTime", getUpdateTime())
                .append("updateBy", getUpdateBy())
                .append("remark", getRemark())
                .toString();
    }
}
